昨天說到了 Cookie,今天來研究一下 Session。
Cookie和 Session 的共同之處在於:Cookie 和 Session都是用來跟蹤瀏覽器使用者身份的會話方式。
Cookie 和 Session的 區別是:Cookie資料儲存在客戶端,Session資料儲存在伺服器端
在網上看了很多 Cookie 和 Session 的比較,我覺得比較容易懂的解釋
我們可以拿會員卡來當例子,
今天有一間你常常去的咖啡店,只要出示會員卡就能夠有折扣,但是咖啡店只認卡不認人,這個就是 Cookie 做的事。
因為認卡不認人,這件事情是有漏洞的,所以我們要有會員資料,過卡的時候,咖啡店會確認一下客戶的一些基本資料,這就是 Session 做的事。
那我們要怎麼用會員卡呢?
會員卡有了之後怎麼對資料?
所以在實作上,預設會採用 Cookie 來完成,在瀏覽器建立資料後,伺服器會傳回給 Cookie,然後使用者就可以使用 Cookie 來記錄資料。
在這裡要特別注意的是,就算沒有 Cookie 的存在,Session 機制也可以正常運作。Cookie 在 Session 機制中,可以扮演許多角色,也可以對原始的 Session 機制做許多改良。
以前,若是小型的網站, Cookie 在 client 端,Session 在 server 端,這件事情是沒有問題的,但是對現在流量很大的網站,要如何在不同的 server 裡去撈出使用者的 Session?
所以,為了因應這種情況,Cookie-based Session 就被視為一種解決方案,可以讓使用者的 Session 暫時存在 Cookie 內,就像是你的會員卡上寫了你的基本資料。
那也因為 Cookie 有大小的限制,所以大部分的網站會使用 Cookie-based 加上後端儲存 Session 並行來處理。
Session 傳值指的是利用 Session 儲存資料的機制,讓不同頁面間可以互相傳遞資料。
明天見:)